Color correction tools are used in the film industry and other disciplines to alter the perceived color of an image. Conventional color correction tools typically allow users to perform primary and secondary color corrections. Primary color correction involves correcting the color of an entire image, such as adjusting the blacks, whites or gray tones of the image. Secondary color correction involves correcting a particular color range in an image. For example, a user may want to change the color of an object in an image from red to blue. The user would identify the range of red in the object and then shift the hue to blue. This process could also be applied to other objects in the image.
Conventional color correction tools often provide poor performance when multiple secondary corrections are applied to images due to the computations involved. Users are often forced to render an entire image before seeing the results of a color adjustment. This delay when multiplied by many adjustments can add significant delay to the overall color correction process.
Conventional color correction tools also fail to provide an intuitive workflow that allows users to make multiple fine adjustments without losing context. For example, the image to be color corrected may be displayed in a different window than the correction interface used to make the corrections, forcing the user to repeatedly take their eyes off of the image while making adjustments. Additionally, a user may have to select an appropriate range for one or more color correction parameters (e.g., luminance, hue, saturation, etc.) because the default or preset ranges for the parameters are not sufficient for the task at hand.
Many color correction tasks are most easily accomplished through the use of several tools. Unfortunately, many conventional color correction tools make it difficult to accomplish even simple tasks by scattering the tools over several user interfaces, menus, layers, etc. The failure to combine, tie or link tools together based on the task can interrupt workflow.